2023年8月1日 星期二

ZeroJudge python解答:a694. 吞食天地二(未完)

 a694. 吞食天地二 - 高中生程式解題系統 (zerojudge.tw)

我的第二次解答,決定將二維陣列轉成一維陣列,來處理累加一維陣列。累加一維陣列之後,再將累加一維陣列轉成累加二維陣列。 那我先寫個測試程式來測試我的想法。

測試程式:

import itertools
import numpy as np
arr = [[1,2,3],[4,5,6],[7,8,9]]
a = np.array(arr)
b = a.flatten('C')
c = list(itertools.accumulate(b))
d = np.array(c).reshape(3,3)
print(d)

 在本機測試所得到的答案如下圖所示:

我的第二次解答:

import itertools
import numpy
import sys
for line in sys.stdin:
    if line != "\n":
        n,m = [int(i) for i in line.split()]
        food = [[int(i) for i in input().split()] for j in range(n)]
        temp_a = numpy.array(food)
        temp_b = temp_a.flatten('C')
        temp_c = list(itertools.accumulate(temp_b))
        food_sum = numpy.array(temp_c).reshape(n,n)
        #print(temp_d)
        for i in range(m):
            x1,y1,x2,y2 = [int(j) for j in input().split()]
            print(food_sum[x2-1][y2-1]-food_sum[x1-1][y1-1])
    else:
        break

拿測試資料來測試,發現答案不對

另外,以此程式送出測試,發現並沒有模組 numpy。

 

我的第一次解答:

import sys
import itertools

for line in sys.stdin:
    if line != "\n":
        n,m = [int(i) for i in line.split()]
        food = [[int(i) for i in input().split()] for j in range(n)]
        for j in range(m):
            sum = 0
            x1,y1,x2,y2 = [int(i) for i in input().split()]
            for k in range(x1-1,x2):
                for l in range(y1-1,y2):
                    sum = sum + food[k][l]
            print(sum)
    else:
        break

 送出測試:


 送出解答:


 

資料來源:
1.高中生解題系統
ZeroJudge解題
ZeroJudge python解答:a004. 文文的求婚
ZeroJudge python解答:a005. Eva 的回家作業
ZeroJudge python解答:a006. 一元二次方程式
ZeroJudge python解答:a009. 解碼器
ZeroJudge python解答:a010. 因數分解
ZeroJudge python解答:a015. 矩陣的翻轉
ZeroJudge python解答:a017. 五則運算
ZeroJudge python解答:a020. 身分證檢驗
ZeroJudge python解答:a021. 大數運算
ZeroJudge python解答:a022. 迴文
ZeroJudge python解答:a024. 最大公因數(GCD)
ZeroJudge python解答:a034. 二進位制轉換
ZeroJudge python解答:a038. 數字翻轉
ZeroJudge python解答:a040. 阿姆斯壯數
ZeroJudge python解答:a042. 平面圓形切割
ZeroJudge python解答:a044. 空間切割
ZeroJudge python解答:a053. Sagit's 計分程式
ZeroJudge python解答:a054. 電話客服中心
ZeroJudge python解答:a058. MOD3
ZeroJudge python解答:a059. 完全平方
ZeroJudge python解答:a065. 提款卡密碼
ZeroJudge python解答:a104. 排序
ZeroJudge python解答:a121. 質數又來囉
ZeroJudge python解答:a148. You Cannot Pass?!
ZeroJudge python解答:a149. 乘乘樂
ZeroJudge python解答:a215. 明明愛數數
ZeroJudge python解答:a216. 數數愛明明
ZeroJudge python解答:a224. 明明愛明明
ZeroJudge python解答:a225. 明明愛排列
ZeroJudge python解答:a244. 新手訓練 ~ for + if
ZeroJudge python解答:a248. 新手訓練 ~ 陣列應用
ZeroJudge python解答:a263. 日期差幾天
ZeroJudge python解答:a410. 解方程
ZeroJudge python解答:a528. 大數排序
ZeroJudge python解答:a647. 投資專家
ZeroJudge python解答:a693. 吞食天地
ZeroJudge  python解答:a694. 吞食天地二
ZeroJudge python解答:a738. 最大公约数

 

沒有留言:

張貼留言

軟體定義網路SDN-主題2-1 OpenFlow 概述

學習目標: 一.介紹OpenFlow特性 二.介紹OpenFlow Ports:實體port、邏輯port、保留port 一.介紹OpenFlow特性 1.OpenFlow 是 (1).控制器與交換器之間溝通的通訊協定 (2)使用了TCP (port 6653;舊版 port 6...